const Koa = require('koa')
const KoaRouter = require('koa-router')

//创建服务器应用实例
const app = new Koa();

// 3.1创建路由器实例对象
const router = new KoaRouter()
// 	3.2声明使用中间件
app.use(router.routes())

// 3.3注册路由(接口)
/*
路由路径必须以/开头
		路由回调函数接受参数个数:2个
				1.ctx->request+response->请求报文对象+响应报文对象
					返回数据的方法:
						ctx.body=需要返回的数据
						使用该方法返回数据,格式一定是json文本
				2.next->执行下一个中间件(就是放行)
*/
	
	// 测试接口
router.get('/text',(ctx,next)=>{
	console.log('textserver');
	ctx.body={}
})

// 当前接口用于返回首页相关数据
const indexData = require('./datas/index.json')
router.get("/getIndexData",(ctx,next)=>{
	ctx.body=indexData
})


//getindexCateList,获取首页导航切换详细数据
const indexCateList = require('./datas/indexCateList.json')
router.get("/getindexCateList",async(ctx,next)=>{
	// 加上定时器延时返回，模拟远程服务器数据返回
	await new Promise(res=>{
		setTimeout(res,1000)
	})
	ctx.body=indexCateList
})



// 当前接口用于返回分类页面相关数据
const categoryDatas = require('./datas/categoryDatas.json')
router.get("/getCategoryDatas",(ctx,next)=>{
	ctx.body=categoryDatas
})

// 获取产品详情数据
// getGoodDetail
const goods = require('./datas/goods.json');
router.get('/getGoodDetail',(ctx,next)=>{
	// 1.获取到商品id
	const {goodId} = ctx.query;
	//2.通过商品Id从商品数组中找到对应商品信息
	const good = goods.find((good)=>{
		return good.id === goodId >>> 0
	})
	// 3.返回找到的商品
	ctx.body=good
})





// 监听将服务器运行到3001端口号上
app.listen('3001', (error) => {
	if (error) {
		console.log('服务器启动失败', error);
	} else {
		console.log('服务器启动成功，地址为http://localhost:3001');
	}
})
